The disclosure relates generally to large scale analytical computing, and more particularly to distribution of tasks among cloud computing resources for enhanced computing efficiency.
A popular type of large scale computing is cloud computing, in which virtualized resources may interact and/or be accessed via a communications system, such as a computer network. Virtualized resources may be software-rendered simulations and/or emulations of computing devices, storage devices, applications, and/or other computer-related devices and/or services run on one or more computing devices, such as a server. For example, a plurality of servers may communicate and/or share information that may expand and/or contract across servers depending on an amount of processing power, storage space, and/or other computing resources needed to accomplish requested tasks. The word “cloud” alludes to the cloud-shaped appearance of a diagram of interconnectivity between computing devices, computer networks, and/or other computer related devices that interact in such an arrangement.
Cloud computing may be provided as a service over the Internet, such as in the form of “infrastructure as a service” (IaaS), “platform as a service” (PaaS), and/or “software as a service” (SaaS). IaaS may typically provide physical or virtual computing devices and/or accessories on a fee-for-service basis and onto which clients/users may load and/or install, and manage, platforms, applications, and/or data. PaaS may deliver a computing platform and solution stack as a service, such as, for example, a software development platform, application services, such as team collaboration, web service integration, database integration, and/or developer community facilitation. SaaS may deploy software licensing an application to customers for use as a service on demand. SaaS software vendors may host the application on their own clouds or download such applications from clouds to cloud clients, disabling the applications after use or after an on-demand contract expires.
The provision of such services allows a user access to as much in the way of computing resources as the user may need without purchasing and/or maintaining the infrastructure, such as hardware and/or software, that would be required to provide the services. For example, a user may instead obtain access via subscription, purchase, and/or otherwise securing access. Thus, cloud computing may be a cost effective way to deliver information technology services. However, cloud computing may also be hindered by issues of data security, privacy, and other policy challenges. In addition, some types of tasks or analyses may be handled better by different types of resources and/or techniques, which may not be taken into account in existing systems. If an analysis is sent to a less optimal computing device and/or a less optimal analytical technique is applied, analysis may take longer to complete than may be desirable. Traditional ways of allocating resources focus on resource utilization and not on assessing the workload and adapting and optimizing the allocation on the workload on the characteristics of both the workload and the compute resources.